#ifndef BASE_TOOLS_PRE_DECL_H
#define BASE_TOOLS_PRE_DECL_H
#include "Variant.h"
namespace DAISY
{
//IDManager
	//class IDManager;
	//typedef boost::shared_ptr<IDManager> IDManagerPtr;


//EventSystem
	class EventManager;
	class Event;
	class EventChannel;
	class EventHandler;
	class EventSpace;
	class EventFactory;
	class EventSender;
	
	typedef boost::shared_ptr<EventManager> EventManagerPtr;
	typedef boost::shared_ptr<EventHandler> EventHandlerPtr;
	typedef boost::weak_ptr<EventHandler> WeakEventHandlerPtr;
	typedef boost::shared_ptr<EventSpace> EventSpacePtr;
	typedef boost::shared_ptr<EventFactory> EventFactoryPtr;
	typedef boost::shared_ptr<EventSender> EventSenderPtr;
	

//DynLibManager	
	class DynamicLib;
	typedef boost::shared_ptr<DynamicLib> DynLibPtr;
	
	class Timer;
	typedef boost::shared_ptr<Timer> TimerPtr;


//	typedef std::map<std::string, Variant > NameValueList;




	class SystemInterface;
	typedef boost::shared_ptr<SystemInterface> SystemPtr;

	class WindowInterface;
	typedef boost::shared_ptr<WindowInterface> WindowPtr;
	typedef boost::weak_ptr<WindowInterface> WeakWindowPtr;

	class SoundPlayer;


	typedef boost::shared_ptr<SoundPlayer> SoundPlayerPtr;
}

#endif
